Skip to content

feat(web): React UI v2.0 — Phase 4 Task 42 (SessionCanvas) — Phase 4 complete#29

Merged
aksOps merged 1 commit into
mainfrom
feat/web-task-42-session-canvas
May 16, 2026
Merged

feat(web): React UI v2.0 — Phase 4 Task 42 (SessionCanvas) — Phase 4 complete#29
aksOps merged 1 commit into
mainfrom
feat/web-task-42-session-canvas

Conversation

@aksOps

@aksOps aksOps commented May 16, 2026

Copy link
Copy Markdown
Contributor

Composes CanvasHead + Transcript with useSessionFull(activeSid). Empty state when null, loading state, error envelope with Retry. Wires into App.tsx replacing the placeholder canvas pane. First real session render.

Also updates the shared test render() helper to wrap with SelectedRefProvider (matches production main.tsx) so any test using selectedRef context works without per-test wrappers.

Known tech debt: App.tsx and SessionCanvas both call useSessionFull(activeSid) — wasteful double subscription. Refactor in Phase 6+ when modals/intents need centralized session state.

125 tests pass (120 + 5). Phase 4 complete.

🤖 Generated with Claude Code

Composes CanvasHead + Transcript over useSessionFull(sid). Handles
null sid (empty state), loading, error+retry, and not-found cases.

App.tsx now renders <SessionCanvas activeSid={activeSid} /> in place
of the empty-state placeholder. The double useSessionFull subscription
(App for Statusbar counters, SessionCanvas internally) is acceptable
v1 tech debt — Phase 6+ refactor when needed.

Test helper render() now wraps with SelectedRefProvider so component
tests using useSetSelected (via SessionCanvas → onSelectTool) work
without per-test wrappers; matches production layout in main.tsx.

Stop/Approve/Reject callbacks are no-ops (// Phase 6).

Tests: 125 passing (+5).
@sonarqubecloud

Copy link
Copy Markdown

@aksOps aksOps merged commit 9ffa8a2 into main May 16, 2026
9 checks passed
@aksOps aksOps deleted the feat/web-task-42-session-canvas branch May 16, 2026 10:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant